package top.luoyuanxiang.mqtt.config;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * mqtt 配置
 *
 * @author luoyuanxiang
 */
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = "spring.mqtt")
public class MqttProperties {

    /**
     * 用户名
     */
    private String username;
    /**
     * 密码
     */
    private String password;
    /**
     * 代理
     */
    private String broker;
    /**
     * 自动重新连接
     */
    private boolean automaticReconnect;
    /**
     * 保持活动间隔
     */
    private int keepAliveInterval;
    /**
     * 全新启动
     */
    private boolean cleanStart;
    /**
     * 连接超时
     */
    private int connectionTimeout;
    /**
     * 会话到期间隔
     */
    private long sessionExpiryInterval;
    /**
     * 主题列表
     */
    private List<Topic> topicList;


    @Getter
    @Setter
    public static class Topic {
        /**
         * 主题名称
         */
        private String name;
        /**
         * QoS：0-最多一次，1-至少一次，2- 仅一次
         */
        private Integer qos = 1;
    }
}
